[INFO] fetching crate libaster 1.2.1...
[INFO] checking libaster-1.2.1 against try#21cad1f647cfd05a566220f933edd88a53e50bcf for pr-129249-1
[INFO] extracting crate libaster 1.2.1 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate libaster 1.2.1
[INFO] finished tweaking crates.io crate libaster 1.2.1
[INFO] tweaked toml for crates.io crate libaster 1.2.1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate libaster 1.2.1 on toolchain 21cad1f647cfd05a566220f933edd88a53e50bcf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+21cad1f647cfd05a566220f933edd88a53e50bcf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+21cad1f647cfd05a566220f933edd88a53e50bcf" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 292 packages to latest compatible versions
[INFO] [stderr]       Adding actix-rt v0.2.6 (available: v2.11.0)
[INFO] [stderr]       Adding actix-web v1.0.9 (available: v4.13.0)
[INFO] [stderr]       Adding aho-corasick v0.7.20 (available: v1.1.4)
[INFO] [stderr]       Adding assert2 v0.1.2 (available: v0.4.0)
[INFO] [stderr]       Adding bitflags v1.3.2 (available: v2.13.0)
[INFO] [stderr]       Adding btoi v0.4.3 (available: v0.5.0)
[INFO] [stderr]       Adding bytes v0.4.12 (available: v1.12.0)
[INFO] [stderr]       Adding clap v2.34.0 (available: v4.6.1)
[INFO] [stderr]       Adding criterion v0.2.11 (available: v0.8.2)
[INFO] [stderr]       Adding env_logger v0.6.2 (available: v0.11.10)
[INFO] [stderr]       Adding futures v0.1.31 (available: v0.3.32)
[INFO] [stderr]       Adding hashbrown v0.3.1 (available: v0.17.1)
[INFO] [stderr]       Adding inotify v0.8.3 (available: v0.11.2)
[INFO] [stderr]       Adding itoa v0.4.8 (available: v1.0.18)
[INFO] [stderr]       Adding md5 v0.6.1 (available: v0.8.0)
[INFO] [stderr]       Adding prometheus v0.7.0 (available: v0.14.0)
[INFO] [stderr]       Adding rand v0.7.3 (available: v0.10.1)
[INFO] [stderr]       Adding sysinfo v0.9.6 (available: v0.39.3)
[INFO] [stderr]       Adding tokio v0.1.22 (available: v1.52.3)
[INFO] [stderr]       Adding toml v0.4.10 (available: v1.1.2+spec-1.1.0)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+21cad1f647cfd05a566220f933edd88a53e50bcf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e
[INFO] running `Command { std: "docker" "start" "27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e" "/opt/rustwide/cargo-home/bin/cargo" "+21cad1f647cfd05a566220f933edd88a53e50bcf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e" "/opt/rustwide/cargo-home/bin/cargo" "+21cad1f647cfd05a566220f933edd88a53e50bcf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling assert2-macros v0.1.0
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking yaml-rust v0.3.5
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking itertools v0.8.2
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking c_linked_list v1.1.1
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stderr]     Checking env_logger v0.6.2
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking get_if_addrs v0.5.3
[INFO] [stderr]    Compiling cast v0.2.7
[INFO] [stderr]     Checking rand_xoshiro v0.1.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking aho-corasick v0.7.20
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking hashbrown v0.3.1
[INFO] [stderr]     Checking md5 v0.6.1
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking inotify v0.8.3
[INFO] [stderr]     Checking yansi v0.5.1
[INFO] [stderr]     Checking btoi v0.4.3
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking criterion-plot v0.3.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking toml v0.4.10
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking assert2 v0.1.2
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking criterion v0.2.11
[INFO] [stderr]     Checking libaster v1.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition name: `linux`
[INFO] [stdout]    --> src/com.rs:291:11
[INFO] [stdout]     |
[INFO] [stdout] 291 | #[cfg(not(linux))]
[INFO] [stdout]     |           ^^^^^ help: found config with similar value: `target_os = "linux"`
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(linux)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(linux)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `linux`
[INFO] [stdout]    --> src/com.rs:301:7
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[cfg(linux)]
[INFO] [stdout]     |       ^^^^^ help: found config with similar value: `target_os = "linux"`
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(linux)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(linux)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]    --> src/protocol/redis/resp.rs:509:38
[INFO] [stdout]     |
[INFO] [stdout] 509 |     static ref FINDER: AhoCorasick = { AhoCorasick::new(PATTERNS) };
[INFO] [stdout]     |                                      ^^                          ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 509 -     static ref FINDER: AhoCorasick = { AhoCorasick::new(PATTERNS) };
[INFO] [stdout] 509 +     static ref FINDER: AhoCorasick = AhoCorasick::new(PATTERNS) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `linux`
[INFO] [stdout]    --> src/com.rs:291:11
[INFO] [stdout]     |
[INFO] [stdout] 291 | #[cfg(not(linux))]
[INFO] [stdout]     |           ^^^^^ help: found config with similar value: `target_os = "linux"`
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(linux)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(linux)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `linux`
[INFO] [stdout]    --> src/com.rs:301:7
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[cfg(linux)]
[INFO] [stdout]     |       ^^^^^ help: found config with similar value: `target_os = "linux"`
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(linux)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(linux)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]    --> src/protocol/redis/resp.rs:509:38
[INFO] [stdout]     |
[INFO] [stdout] 509 |     static ref FINDER: AhoCorasick = { AhoCorasick::new(PATTERNS) };
[INFO] [stdout]     |                                      ^^                          ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 509 -     static ref FINDER: AhoCorasick = { AhoCorasick::new(PATTERNS) };
[INFO] [stdout] 509 +     static ref FINDER: AhoCorasick = AhoCorasick::new(PATTERNS) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |                     Err(_err) => return Err(AsError::BadMessage.into()),
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     return Err(AsError::BadMessage.into());
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:133:45
[INFO] [stdout]     |
[INFO] [stdout] 133 |                     Err(_err) => return Err(AsError::BadMessage.into()),
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     return Err(AsError::BadMessage.into());
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |             Err(AsError::BadReply.into())
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/proxy/cluster/back.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |                     return Err(err.into());
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/proxy/standalone/back.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     return Err(err.into());
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/lib.rs:35:28
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let watch_file = config.clone();
[INFO] [stdout]    |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/com.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_AsError`
[INFO] [stdout] 20 | pub enum AsError {
[INFO] [stdout]    |          ------- `AsError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/com.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_AsError`
[INFO] [stdout] 20 | pub enum AsError {
[INFO] [stdout]    |          ------- `AsError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/redis.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn borrow(&self) -> Ref<Command> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn borrow(&self) -> Ref<'_, Command> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/redis.rs:161:23
[INFO] [stdout]     |
[INFO] [stdout] 161 |     pub fn borrow_mut(&self) -> RefMut<Command> {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 161 |     pub fn borrow_mut(&self) -> RefMut<'_, Command> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/redis/resp.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> MessageIter {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> MessageIter<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]   --> src/proxy/cluster/init.rs:99:21
[INFO] [stdout]    |
[INFO] [stdout] 99 |                     std::mem::drop(sender); // must drop when the while state is done;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^------^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    argument has type `&mut futures::unsync::mpsc::Sender<redis::Cmd>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    |
[INFO] [stdout] 99 -                     std::mem::drop(sender); // must drop when the while state is done;
[INFO] [stdout] 99 +                     let _ = sender; // must drop when the while state is done;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `libaster` (lib) due to 7 previous errors; 10 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |                     Err(_err) => return Err(AsError::BadMessage.into()),
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     return Err(AsError::BadMessage.into());
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:133:45
[INFO] [stdout]     |
[INFO] [stdout] 133 |                     Err(_err) => return Err(AsError::BadMessage.into()),
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis/resp.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     return Err(AsError::BadMessage.into());
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/protocol/redis.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |             Err(AsError::BadReply.into())
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/proxy/cluster/back.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |                     return Err(err.into());
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `com::AsError`
[INFO] [stdout]    --> src/proxy/standalone/back.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     return Err(err.into());
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<com::AsError as Into<com::AsError>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/lib.rs:35:28
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let watch_file = config.clone();
[INFO] [stdout]    |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/com.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_AsError`
[INFO] [stdout] 20 | pub enum AsError {
[INFO] [stdout]    |          ------- `AsError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/com.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_AsError`
[INFO] [stdout] 20 | pub enum AsError {
[INFO] [stdout]    |          ------- `AsError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/redis.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn borrow(&self) -> Ref<Command> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn borrow(&self) -> Ref<'_, Command> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/redis.rs:161:23
[INFO] [stdout]     |
[INFO] [stdout] 161 |     pub fn borrow_mut(&self) -> RefMut<Command> {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 161 |     pub fn borrow_mut(&self) -> RefMut<'_, Command> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/redis/resp.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> MessageIter {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> MessageIter<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]   --> src/proxy/cluster/init.rs:99:21
[INFO] [stdout]    |
[INFO] [stdout] 99 |                     std::mem::drop(sender); // must drop when the while state is done;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^------^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    argument has type `&mut futures::unsync::mpsc::Sender<redis::Cmd>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    |
[INFO] [stdout] 99 -                     std::mem::drop(sender); // must drop when the while state is done;
[INFO] [stdout] 99 +                     let _ = sender; // must drop when the while state is done;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `libaster` (lib test) due to 7 previous errors; 10 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e", kill_on_drop: false }`
[INFO] [stdout] 27530ce8cf8c30071f7a6c82d119d3a8ba4354f8143a9fc86212d9398f8e698e
